﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
using Jurassic_Island;
using System.IO;

namespace JurassicIslandWeb
{
    public partial class Encliclopedia : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Title = Master.Page.Header.Title + " - Enciclopedia";

            DataTable dtLugares = GetLugares();
            DataTable dtObjetos = GetObjetos();
            //DataRow drLugares;

            for (int i = 0; i < 3; i++)
            {
                AccordionPane pane1 = new AccordionPane();
                //Here i used Guid for uniqueness
                pane1.ID = "AccordionPane" + Guid.NewGuid().ToString();


                if (i == 0)
                {
                    string auxiliar;
                    string NombreLugar;
                    string CoordenadaX;
                    string CoordenadaY;
                    string Descripcion;
                    string Imagen;

                    pane1.HeaderContainer.Controls.Add(new LiteralControl("Lugares"));
                    foreach (DataRow drLugares in dtLugares.Rows) //Un foreach da más comodidad a la hora de recorrer Collections
                    {
                        NombreLugar = drLugares["Nombre"].ToString();
                        CoordenadaX = drLugares["Coordenada X"].ToString();
                        CoordenadaY = drLugares["Coordenada Y"].ToString();
                        Descripcion = drLugares["Descripcion"].ToString();
                        Imagen = drLugares["Imagen"].ToString();

                        auxiliar = "<h2>" + NombreLugar + "</h2>";
                        auxiliar += "<img src=\"Images/Lugares/" + Imagen + "\" style=\"height:150px;\" /><br /><br />";
                        auxiliar += "Nombre: " + NombreLugar + "<br/>" + "Coordenada X: " + CoordenadaX + "<br/>" + "Coordenada Y: " +CoordenadaY+ "<br/>" +"Descripcion: "+Descripcion+"<br/>";
                        pane1.ContentContainer.Controls.Add(new LiteralControl("<a id='"+auxiliar+"' onclick=\"updateDateKey(this.id);\">"+NombreLugar+"</a><br/>"));
                    }
                }
                else if (i == 1)
                {
                    string auxiliar;
                    string NombreObjeto;
                    string CosteObjeto;
                    string ImagenObjeto;
                    pane1.HeaderContainer.Controls.Add(new LiteralControl("Objetos"));
                    foreach (DataRow drObjetos in dtObjetos.Rows) //Un foreach da más comodidad a la hora de recorrer Collections
                    {
                        NombreObjeto = drObjetos["Nombre Objeto"].ToString();
                        CosteObjeto = drObjetos["Coste Objeto"].ToString();
                        ImagenObjeto = drObjetos["Imagen Objeto"].ToString();

                        auxiliar = "<h2>" + NombreObjeto + "</h2>";
                        auxiliar += "<img src=\"Images/Objetos/" + ImagenObjeto + "\" style=\"height:150px;\" /><br /><br />";
                        auxiliar += "Nombre: " + NombreObjeto + "<br/>" + "Coste: "+ CosteObjeto + "</br>";
                        pane1.ContentContainer.Controls.Add(new LiteralControl("<a id='" + auxiliar + "' onclick=\"updateDateKey(this.id);\">" + NombreObjeto + "</a><br/>"));
                    }
                }
                AccordionCtrl.Panes.Add(pane1);
            }

        }
        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public static string GetHtml(string contextKey)
        {
            // A little pause to mimic a latent call
            // This the place to perfomr server side
            // code like DB access

            System.Threading.Thread.Sleep(350);

            return String.Format("{0}", contextKey);
        }
        private DataTable GetLugares()
        {
            ENLugares enLug = new ENLugares();
            DataSet ds = new DataSet(); //Creamos el dataset vacío
            DataTable dtLugares = new DataTable(); //Creamos un datatable vacío, para devolverlo vacío si no hay datos para obtener
            try //Consejo: cuando algo nos pete, encerradlo en un try/catch y marcad la linea para depurar...
            {
                ds = enLug.ObtenerListaLugares(); //Obtenemos la lista de lugares
                dtLugares = ds.Tables["Lugares"]; //Sacamos la tabla
            }
            catch (Exception) //
            {

            }

            return dtLugares;
        }

        private DataTable GetObjetos()
        {
            ENObjeto enObj = new ENObjeto();
            DataSet ds = new DataSet(); //Creamos el dataset vacío
            DataTable dtObjetos = new DataTable(); //Creamos un datatable vacío, para devolverlo vacío si no hay datos para obtener
            try //Consejo: cuando algo nos pete, encerradlo en un try/catch y marcad la linea para depurar...
            {
                ds = enObj.ObtenerListaObjetos(); //Obtenemos la lista de lugares
                dtObjetos = ds.Tables["Objetos"]; //Sacamos la tabla
            }
            catch (Exception) //
            {

            }

            return dtObjetos;
        }

        private DataTable GetFinales()
        {
            ENFinal enFin = new ENFinal();
            DataSet ds = new DataSet(); //Creamos el dataset vacío
            DataTable dtFinales = new DataTable(); //Creamos un datatable vacío, para devolverlo vacío si no hay datos para obtener
            try //Consejo: cuando algo nos pete, encerradlo en un try/catch y marcad la linea para depurar...
            {
                ds = enFin.ObtenerListadoFinales(); //Obtenemos la lista de lugares
                dtFinales = ds.Tables["Finales"]; //Sacamos la tabla
            }
            catch (Exception) //
            {

            }

            return dtFinales;
        }
    }

}